package 常见算法查找;

import java.util.ArrayList;

public class 基本查找 {
    public static void main(String[] args) {
        //基本查找/顺序查找
        //核心：
        //从0索引开始挨个往后查找

        //需求：定义一个方法利用基本查找，查询某个元素是否存在
        //数据如下：{131, 127, 147, 81, 103, 23, 7, 79}
        int[] arr = {131, 127, 147, 81, 103, 23, 7, 79};
        int number = 127;
        System.out.println(BasicSeach(arr, number));
        //课堂练习1：
        //需求：定义一个方法利用基本查找，查询某个元素在数组中的索引
        //要求：不需要考虑数组中元素是否重复
        System.out.println(BasicSeachInput(arr, number));

        //课堂练习2：
        //需求：定义一个方法利用基本查找，查询某个元素在数组中的索引
        //要求：需要考虑数组中元素有重复的可能性
        //{131, 127, 147, 81, 103, 23, 7, 79, 81}
        //我要查找81，想要返回的是所有索引 3 8
        int[] brr = {131, 127, 147, 81, 103, 23, 7, 79, 81};
        ArrayList<Integer> list = BasicSeachInput1(brr, 81);
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }

    public static ArrayList<Integer> BasicSeachInput1(int[] brr, int number) {//课堂练习2
        ArrayList<Integer> list = new ArrayList<>();
        for (int i = 0; i < brr.length; i++) {
            if (brr[i] == number) {
                list.add(i);
            }
        }
        return list;
    }

    public static int BasicSeachInput(int[] arr, int number) {//课堂练习1
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == number) {
                return i;
            }
        }
        return -1;
    }

    public static boolean BasicSeach(int[] arr, int number) {//顺序查找元素是否存在
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == number) {
                return true;
            }
        }
        return false;
    }
}
